問題六 -- 我用 CoffeeScript 為什麼錯誤的時候顯示的行數是錯誤的?
如果使用像是 CoffeeScript 這種工具,或是像 minify or uglify 過後的 javascript 程式碼,都會有這樣子的問題,如果你沒有 map 檔案的話!什麼事 map 檔呢?我準備了下圖解說:
你看一下會發現檔案總之分成三種,一種是一般的 source code ,另外一種檔名為 min 代表是被 minify or uglify 過的程式碼,檔案會比較小,減少瀏覽器讀取的時間跟流量的傳輸時間。然後最後當然就是本文的重點 map 檔,什麼是 map 檔呢?他的正確名稱叫做 Source Map 功用是幫助你讀取、尋找到發錯誤的正確位置、錯誤的變數等,當然不是真的幫你找,是提供給瀏覽器來判讀,顯示給你看,所以如果你有使用 CoffeeScript 這種編譯 javascript 的工具或是使用 minify or uglify 後的程式碼,記得要引入 map 檔喔!